package com.zmn.plat.persistence.interfaces.orderconfig.distribute;

import com.zmn.plat.common.dto.orderconfig.distribute.RobOrderDIO;
import com.zmn.plat.model.entity.orderconfig.distribute.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 描述：抢单设置接口
 *
 * @author tanlei
 * @since 2021/7/13 11:29
 */
@Repository
public interface RobOrderConfigDao {

    /**
     * 新增抢单配置规则
     *
     * @param robOrderConfigInfo
     * @return Integer
     */
    Integer insert(RobOrderConfigInfo robOrderConfigInfo);

    /**
     * 描述: 更新抢单规则
     *
     * @param robOrderConfigInfo
     * @return java.lang.Integer
     * @author tanlei
     * @since  2021-07-14 14:57:15
     */
    Integer updateByKey(RobOrderConfigInfo robOrderConfigInfo);

    /**
     * 编辑启用停用状态
     *
     * @param updateStatusQuery
     * @return
     */
    Integer updateStatus(UpdateStatusQuery updateStatusQuery);

    /**
     * 描述: 查询是否城市下抢单规则数量
     *
     * @param query
     * @return java.lang.Integer 成功个数
     * @author tanlei
     * @since  2021-07-13 09:57:35
     */
    Integer countByQuery(RobOrderConfigInfoQuery query);

    /**
     * 获取抢单对象
     * @param configId
     * @return
     */
    RobOrderConfigInfo findByKey(@Param("configId") Integer configId);

    /**
     * 描述: 查询抢单配置表
     *
     * @param query
     * @author tanlei
     * @since 2021-07-14 15:57:35
     **/
    RobOrderConfigInfo findRobOrderConfigByQuery(RobOrderDIO query);

    /**
     * 描述: 查询服务商抢单配置表
     *
     * @param query
     * @author tanlei
     * @since 2021-07-14 15:57:35
     **/
    RobOrderConfigInfo findCompanyRobOrderConfigByQuery(RobOrderDIO query);

    List<RobOrderConfigInfo> listConfigInfoByConfigIds(@Param("configIds") List<Integer> configIds);

}
